사이트 내 전체검색
PHP
[MySQL] MySQL 4.1.x 문자셋, 인코딩, UTF-8 (2009/11/03 수정)
로빈아빠
https://cmd.kr/php/694 URL이 복사되었습니다.

본문

기존 버전에서는 "euc-kr"로 표기되는 문자셋이 "euckr"로 바뀌었다.
/etc/my.cnf

[client]
default-character-set=utf8
[mysqld]
default-character-set=utf8
[mysqldump]
default-character-set=utf8


JDBC Driver URL

jdbc:mysql://localhost:3306/struts?useUnicode=true&characterEncoding=UTF8


현제 문자셋 정보 보기

mysql> show variables like 'c%';
+--------------------------+----------------------------------------+
| Variable_name            | Value                                  |
+--------------------------+----------------------------------------+
| character_set_client     | euckr                                  |
| character_set_connection | euckr                                  |
| character_set_database   | euckr                                  |
| character_set_filesystem | binary                                 |
| character_set_results    | euckr                                  |
| character_set_server     | euckr                                  |
| character_set_system     | utf8                                   |
| character_sets_dir       | /usr/local/mysql/share/mysql/charsets/ |
| collation_connection     | euckr_korean_ci                        |
| collation_database       | euckr_korean_ci                        |
| collation_server         | euckr_korean_ci                        |
| completion_type          | 0                                      |
| concurrent_insert        | 1                                      |
| connect_timeout          | 10                                     |
+--------------------------+----------------------------------------+


이미 생성된 DATABASE의 문자셋 바꾸기

mysql> SET character_set_client = utf8;
mysql> SET character_set_results = utf8;
mysql> SET character_set_connection = utf8;
mysql> ALTER DATABASE [DB명] DEFAULT CHARACTER SET utf8;


이미 데이터가 들어간 테이블의 문자셋 변환

mysql> create table test (merong varchar(20) collate latin1_general_ci);

이렇게 만들어진 테이블에 한글 데이터를 넣은 후 필드를 euckr 로 변경하려면
다음처럼 해야 합니다.

mysql> alter table test modify merong binary(100);
mysql> alter table test modify merong varchar(20) collate euckr_korean_ci;

binary 로 바꾸면 문자셋 특성이 사라지기 때문에 이런 변환과정을 거쳐야
합니다(메뉴얼에 의하면). 그냥 바꾸면 문자들이 손상됩니다.


mysql> flush privileges;   명령어를 실행해야 권한이 변경된 사실을 mysql에 알린다.


참조 : Database.sarang.net에 올라온 글

기존 EUC-KR 데이타를 4.1.x로 옮기기
http://okjsp.pe.kr/bbs?act=VIEW&seq=43402&bbs=bbs2&keyfield=subject&keyword=mysql&pg=0


자료인용 : http://cafe.naver.com/otoio.cafe?iframe_url=/ArticleRead.nhn%3Farticleid=360

댓글목록

등록된 댓글이 없습니다.

PHP
871 (6/18P)

Search

Copyright © Cmd 명령어 3.137.218.1